<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var num = 10;
        fun();

        function fun() {
            console.log(num);
            var num = 20;
        }
        //分析：
        // 1.首先，js引擎会将里面所有var 以及function提升到当前作用域的最前面
        var num; //变量提升，不提升赋值操作
        function fun() {
            var num;
            console.log(num);
            num = 20; //这个num的当前作用域为函数内部，所以不会往外提升
            //但是在函数内部也需要提升
        }
        //剩下的代码依次挪动下来即可
        num = 10;
        fun();
    </script>
</head>

<body>

</body>

</html>